常用的 Bash 命令总结
这篇记录是我看 The Linux Command Line 后为了总结而写的,目的是便于自己随时查阅。The Linux Command Line 是我相当喜欢的一本电子书,它是一本值得一页一页看下去的书。
cp
1 | # 仅复制目标目录不存在或者存在但是更旧的的项。 |
mv
1 | # 仅移动目标目录不存在或者存在但是更旧的的项。 |
rm
1 | 警惕不小心写出 rm * .html 这样的命令,这会删除当前目录的所有文件。 |
命令的4中形式
- executable file, 可以是二进制的,也可以是文本形式的脚本;
- builtins, 即 /bin 下面的 [, echo, kill, pwd, test 和 /usr/bin 下面的 alias, bg, cd, command, false, fc, fg, getopts, hash, jobs, printf, read, true, type, ulimit, umask, unalias, wait, which;
- shell 函数
- alias 定义的别名
type
type是一个极其有用的命令,能立马找到当前环境能用的命令是源自哪里,是什么类型的。示例:
➜ ~ type Python3
Python3 is /Users/didi/.bin/Python3
➜ ~ ls -l /Users/didi/.bin/Python3
lrwxr-xr-x 1 didi staff 22 4 25 10:06 /Users/didi/.bin/Python3 -> /usr/local/bin/python3
➜ ~ type [
[ is a shell builtin
➜ ~ type ls
ls is an alias for ls -G
where
where命令的有用之处是它可以列出所有出现的地方,比如电脑里面有两个 git 可执行文件,那么 where git 可以把它们统统列出来。
man 手册的章节含义
- 用户命令
- 程序接口内核系统调用
- 库函数程序接口
- 特殊文件,比如说设备结点和驱动程序
- 文件格式
- 游戏娱乐,如屏幕保护程序
- 其他方面
- 系统管理员命令
> file_name
巧妙的使用重定向,可以将文本文件的内容清空,也可以新建一个空文件。
重定向的常见用法
1 | # 覆盖型重定向 stdout,可以省略那个 1 |
/dev/null
随意放东西进去的垃圾箱
花括号展开
echo Front-{A..D}–Back 将会输出四项内容,即 {A..D} 表示从 A 到 D 一共四个情况。
将命令执行结果展开
1 | # 只需要把命令放在 $() 里面即可,旧版 shell 也使用把命令放在 `` 中间的方式 |
引号
1 | # 双引号中,参数展开,算术表达式展开,和命令替换仍然有效,比如 |
命令行移动光标
ctrl a # 移动到行首
ctrl e # 移动到行末
alt <- # 左移一个 word
alt -> # 右移一个 word
ctrl u # 剪切整行内容
ctrl k # 剪切光标后面的内容
ctrl y # 粘贴
管理进程
1 | # 列出终端相关进程 |